package com.ruoyi.cms.mapper;

import com.ruoyi.cms.domain.MaterialUse;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 素材Mapper接口
 *
 * @author wujiyue
 * @date 2019-11-05
 */
public interface MaterialUseMapper {

    /**
     * 插入使用记录
     *
     * @param materialUse
     * @return
     */

    public int insertMaterialUse(MaterialUse materialUse);

    /**
     * 批量插入使用记录
     *
     * @param materialUses
     * @return
     */

    public int insertMaterialUseBatch(List<MaterialUse> materialUses);

    /**
     * 查询素材使用记录
     *
     * @param materialUse
     * @return
     */
    public List<MaterialUse> selectMaterialUseList(MaterialUse materialUse);

    /**
     * 根据主键查询素材使用记录
     *
     * @param ids
     * @return
     */
    public List<MaterialUse> selectMaterialUseByIds(String[] ids);

    /**
     * 批量删除素材使用记录
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteMaterialUseBatch(String[] ids);

    /**
     *
     * 根据引用表、引用字段、引用记录id、素材id删除指定引用记录
     * @param table 引用表
     * @param useId 引用id
     * @param column 引用字段
     * @param mColumn 引用表materialId字段
     * @param materialId 素材id
     * @return
     */
    public int deleteMaterialUseByMx(@Param("materialId") String materialId, @Param("table") String table,
                                     @Param("useId") String useId, @Param("column") String column,
                                     @Param("materialColumn") String mColumn);


    /**
     * 查询某个素材有几条使用记录（cms_material_use）
     *
     * @param materialId
     * @return
     */
    public int selectCountMaterialUse(String materialId);

    /**
     * 更新素材的使用状态
     *
     * @param materialId
     * @param useState
     * @return
     */
    public int updateMaterialUseState(@Param("materialId") String materialId, @Param("useState") String useState);
}
